#include "BoolParameter.h"

namespace czj {
namespace util {

BoolParameter::BoolParameter(const char *_describe)
		: Parameter(_describe), hints_(), keys_(), value_(false) {
}

BoolParameter::~BoolParameter() {
}

Parameter::Type BoolParameter::getType() const {
	return BOOL;
}

const std::list<std::string> &BoolParameter::getHints() const {
	return hints_;
}

bool BoolParameter::bindKey(const char *_key) {
	if (!keys_.insert(_key).second) {
		return false;
	}
	hints_.push_back(_key);
	return true;
}

bool BoolParameter::matchKey(const char *_key) {
	if (keys_.find(_key) != keys_.cend()) {
		value_ = true;
		return true;
	}
	return false;
}

bool BoolParameter::getValue() const {
	return value_;
}

} // util
} // czj
